Jakub Kosterna - pd 2

Warsztaty Badawcze 2021: XAI-1

0. Wczytanie pakietów, zbioru i modelu

Czas wreszcie przetestować działanie pakietu pickle!

Skrypt z najlepszym znalezionym przez moją grupę modelem (XGBoost z tuningiem hyperparametrów) umieściłem w pliku xgboost_model.ipynb.

Potrzebne biblioteki

Przygotowanie zbioru danych oraz datasetów treningowego i testowego

Klasycznie - czerwonego wina czas 🍷

Wczytanie modelu (chwila prawdy!!)

Sukces!!!

1. Predykcja wybranej obserwacji

Zainicjujmy naszego wytłumaczacza.

Ostatnio wziąłem pod lupę potęgi dwójki, dziś czas może na potęgi trójki. Jak sprawa wygląda z $3^{3}$-cią obserwacją ze zbioru testowego?

W tym wypadku nasz model przewidział wino dobre z prawdopodobieństwem aż 96,5% i rzeczywiście miał rację!

2. Dekompozycja wybranej obserwacji

Bardzo wysokie prawdopodobieństwo pozytywnej oceny wina widać na zestawienu wyżej. Zczytując od góry najbardziej kluczowe, mamy tu styczność z:

Wszystkie powyższe cechy zaowocowały +10% wpływem na ocenę modelu. Pozostałe 6 kolumn miało już o wiele mniejszy wpływ - wszystkie do 5%.

Co ciekawe, tylko dwie najmniej znaczące cechy (wskaźnik pH oraz zawartość kwasu cytrynowego) nie były ani w 25% najmniejszych wartości, ani wśród 25% największych. Interesujące, że tak mało ich, jednak z drugiej strony mniej dziwne, że znalazły się one na samym dnie - naturalnie, że z kolumn o wartościach bardziej oddalonych od "najbardziej typowych", da się więcej odczytać i przewidywać.

Można zauważyć także dużo wspólnych własności wygenerowanej wyżej dekompozycji z macierzą korelacji utworzonej podczas EDA - dodatnia korelacja i wartość powyżej mediany oraz ujemna korelacja wraz z cechą poniżej 50% obserwacji owocują w pewniejsze przewidywanie wina jako dobrego, zaś pozostałe dwa parowane przypadki - wręcz przeciwnie.

3. Porównanie LIME dla różnych obserwacji

Niech żyją potęgi trójki!!

Czy wszystkie z owych sześciu win zostało dobrze zakwalifikowanych według naszego modelu?

O! Bardzo ładnie wyszło:

  1. Cztery wina zostały dobrze sklasyfikowane - te o indeksach 0, 8 i 26 zgodnie z planem okazały się być dobre, zaś 242 - złe
  2. Jakość dwóch win została źle przewidziana - dla id = 2 eksperci ocenili wino pozytywnie (przeciwnie do wyniku naszego modelu), zaś dla obserwacji 243-ciej - na odwrót.

Najpierw przyjrzyjmy się indeksom dobrze zaklasyfikowanym przez model:

Co do wszystkich powyższych win model był w miarę pewny - przy pewnościach między 86% a 97% otrzymaliśmy poprawny wynik. Czy podobnie było w przypadkach wypadku przy pracy naszego XGBoost-a?

4. Podsumowanie i wnioski

🍷 LIME to metoda zdecydowanie godna uwagi. Jej ogromnym plusem jest fakt, że możemy odczytać, jak bardzo możemy być pewni co do predykcji i dlaczego. Satysfakcjonujące efekty tego widzimy na przykładzie 6 wziętych pod lupę powyższych obserwacji - okazuje się, że przypadek, co do którego LIME miał największe wątpliwości, był jednym z 2 z 6 win, które zostały źle przewidziane w kwestii oceny przez ekspertów. Zapewne także i globalnie, większa "kontrowersyjność" co do oceny sprzyja częstszym myleniu się!

🍷 Z refleksji wyżej bezpośrednio dostajemy fajny wniosek - przy bardziej typowych obserwacjach dla obu klas mamy większą pewność co do wyniku i LIME nas o tym informuje. Gorzej z przykładami niestandardowymi, obfitymi w znaczną ilość cech typowych jednocześnie dla jednej, jak i drugiej klasy klasyfikacji.

🍷 Przeciwnie do Break Down i Shapley Values, tu w zależności od obserwacji możemy zobaczyć naprawdę różną kolejność kluczowości cech. W zależności od właściwości wierszy ramki danych, "rankingi ważności" różnią się o wiele bardziej niż w przypadku najnowszej poznanej na zajęciach metody.

🍷 Kwartyle rzeczywiście grają istotną rolę w owej metodzie.

🍷 Analizując LIME dobrze mieć pod ręką macierz korelacji zbioru danych, a także wartości kwartyli. Przynajmniej na początku oswajania z metodą i danymi owocuje to w jeszcze przejrzystsze i sprawniejsze zrozumienie jak działa model i dekompozycja.